package ca.usherbrooke.domus.sipnmove.call;

import java.util.Map;

/**
 * A call with states from INITIATED to DELETED
 * 
 * Calls are typically created by a user agent when incoming call events are 
 * processed or when a new call is asked to a user agent.
 * 
 * This is the element of communication that memorizes the state of the 
 * communication and that handle information about a specific communication 
 * (peer information, communication type, etc.)
 */
public interface Call {

	/**
	 * Accept an incoming call
	 */
	public void accept();

	/**
	 * Initiate the call
	 */
	public void initiate(Map<String, Object> callInformation);

	/**
	 * Terminate the call
	 */
	public void terminate();

	/**
	 * Update call information
	 */
	public void update(Map<String, Object> callInformation);
	
}
